package org.example.proxy.cglib;

import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

import java.lang.reflect.Method;

public class CatMethodInterceptor implements MethodInterceptor {
    /**
     * 生成方法拦截器
     *
     * @param o           要进行增强的对象
     * @param method      拦截的方法
     * @param objects     参数列表
     * @param methodProxy 方法的代理
     * @return 代理
     * @throws Throwable 异常
     */
    @Override
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("--------调用前处理-------");
        Object object=methodProxy.invokeSuper(o,objects);
        System.out.println("--------调用后处理-------");
        return object;
    }
}
